package com.ruoyi.huanghefd.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

/**
 * 停送电申请单
 * @TableName applysheet_poweroffon
 */
@TableName(value ="applysheet_poweroffon")
@Data
public class ApplysheetPoweroffon implements Serializable {
    /**
     * ID
     */
    private String apId;

    /**
     * 申请单编号
     */
    private String apCode;

    /**
     * 申请单类型，0-停电，1-送电
     */
    private String apType;

    /**
     * 申请单状态；待商定
     */
    private Integer apState;

    /**
     * 工作票号
     */
    private String wsCode;

    /**
     * 申请人
     */
    private String proposer;

    /**
     * 停送电设备名称编号
     */
    private String poweroffonDev;

    /**
     * 停送电理由
     */
    private String poweroffonReason;

    /**
     * 停送电时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date poweroffonTime;

    /**
     * 申请停送电的值班负责人
     */
    private String apPrincipalid;

    /**
     * 申请停送电的值班负责人
     */
    private String apPrincipal;

    /**
     * 申请停送电的值班负责人签名时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date apPrincipalDate;

    /**
     * 负责停送电的值班负责人
     */
    private String chargePrincipalid;

    /**
     * 负责停送电的值班负责人
     */
    private String chargePrincipal;

    /**
     * 负责停送电的值班负责人签名时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date chargePrincipalDate;

    /**
     * 停送电的执行人
     */
    private String executorid;

    /**
     * 停送电的执行人
     */
    private String executor;

    /**
     * 申请停送电的值班负责人签名时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date poweroffonEndtime;

    /**
     * 已通知停送电申请人
     */
    private String noticeProposerid;

    /**
     * 已通知停送电申请人
     */
    private String noticeProposer;

    /**
     * 已通知停送电申请人时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date noticeProposerDate;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        ApplysheetPoweroffon other = (ApplysheetPoweroffon) that;
        return (this.getApId() == null ? other.getApId() == null : this.getApId().equals(other.getApId()))
            && (this.getApCode() == null ? other.getApCode() == null : this.getApCode().equals(other.getApCode()))
            && (this.getApType() == null ? other.getApType() == null : this.getApType().equals(other.getApType()))
            && (this.getApState() == null ? other.getApState() == null : this.getApState().equals(other.getApState()))
            && (this.getWsCode() == null ? other.getWsCode() == null : this.getWsCode().equals(other.getWsCode()))
            && (this.getProposer() == null ? other.getProposer() == null : this.getProposer().equals(other.getProposer()))
            && (this.getPoweroffonDev() == null ? other.getPoweroffonDev() == null : this.getPoweroffonDev().equals(other.getPoweroffonDev()))
            && (this.getPoweroffonReason() == null ? other.getPoweroffonReason() == null : this.getPoweroffonReason().equals(other.getPoweroffonReason()))
            && (this.getPoweroffonTime() == null ? other.getPoweroffonTime() == null : this.getPoweroffonTime().equals(other.getPoweroffonTime()))
            && (this.getApPrincipalid() == null ? other.getApPrincipalid() == null : this.getApPrincipalid().equals(other.getApPrincipalid()))
            && (this.getApPrincipal() == null ? other.getApPrincipal() == null : this.getApPrincipal().equals(other.getApPrincipal()))
            && (this.getApPrincipalDate() == null ? other.getApPrincipalDate() == null : this.getApPrincipalDate().equals(other.getApPrincipalDate()))
            && (this.getChargePrincipalid() == null ? other.getChargePrincipalid() == null : this.getChargePrincipalid().equals(other.getChargePrincipalid()))
            && (this.getChargePrincipal() == null ? other.getChargePrincipal() == null : this.getChargePrincipal().equals(other.getChargePrincipal()))
            && (this.getChargePrincipalDate() == null ? other.getChargePrincipalDate() == null : this.getChargePrincipalDate().equals(other.getChargePrincipalDate()))
            && (this.getExecutorid() == null ? other.getExecutorid() == null : this.getExecutorid().equals(other.getExecutorid()))
            && (this.getExecutor() == null ? other.getExecutor() == null : this.getExecutor().equals(other.getExecutor()))
            && (this.getPoweroffonEndtime() == null ? other.getPoweroffonEndtime() == null : this.getPoweroffonEndtime().equals(other.getPoweroffonEndtime()))
            && (this.getNoticeProposerid() == null ? other.getNoticeProposerid() == null : this.getNoticeProposerid().equals(other.getNoticeProposerid()))
            && (this.getNoticeProposer() == null ? other.getNoticeProposer() == null : this.getNoticeProposer().equals(other.getNoticeProposer()))
            && (this.getNoticeProposerDate() == null ? other.getNoticeProposerDate() == null : this.getNoticeProposerDate().equals(other.getNoticeProposerDate()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getApId() == null) ? 0 : getApId().hashCode());
        result = prime * result + ((getApCode() == null) ? 0 : getApCode().hashCode());
        result = prime * result + ((getApType() == null) ? 0 : getApType().hashCode());
        result = prime * result + ((getApState() == null) ? 0 : getApState().hashCode());
        result = prime * result + ((getWsCode() == null) ? 0 : getWsCode().hashCode());
        result = prime * result + ((getProposer() == null) ? 0 : getProposer().hashCode());
        result = prime * result + ((getPoweroffonDev() == null) ? 0 : getPoweroffonDev().hashCode());
        result = prime * result + ((getPoweroffonReason() == null) ? 0 : getPoweroffonReason().hashCode());
        result = prime * result + ((getPoweroffonTime() == null) ? 0 : getPoweroffonTime().hashCode());
        result = prime * result + ((getApPrincipalid() == null) ? 0 : getApPrincipalid().hashCode());
        result = prime * result + ((getApPrincipal() == null) ? 0 : getApPrincipal().hashCode());
        result = prime * result + ((getApPrincipalDate() == null) ? 0 : getApPrincipalDate().hashCode());
        result = prime * result + ((getChargePrincipalid() == null) ? 0 : getChargePrincipalid().hashCode());
        result = prime * result + ((getChargePrincipal() == null) ? 0 : getChargePrincipal().hashCode());
        result = prime * result + ((getChargePrincipalDate() == null) ? 0 : getChargePrincipalDate().hashCode());
        result = prime * result + ((getExecutorid() == null) ? 0 : getExecutorid().hashCode());
        result = prime * result + ((getExecutor() == null) ? 0 : getExecutor().hashCode());
        result = prime * result + ((getPoweroffonEndtime() == null) ? 0 : getPoweroffonEndtime().hashCode());
        result = prime * result + ((getNoticeProposerid() == null) ? 0 : getNoticeProposerid().hashCode());
        result = prime * result + ((getNoticeProposer() == null) ? 0 : getNoticeProposer().hashCode());
        result = prime * result + ((getNoticeProposerDate() == null) ? 0 : getNoticeProposerDate().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", apId=").append(apId);
        sb.append(", apCode=").append(apCode);
        sb.append(", apType=").append(apType);
        sb.append(", apState=").append(apState);
        sb.append(", wsCode=").append(wsCode);
        sb.append(", proposer=").append(proposer);
        sb.append(", poweroffonDev=").append(poweroffonDev);
        sb.append(", poweroffonReason=").append(poweroffonReason);
        sb.append(", poweroffonTime=").append(poweroffonTime);
        sb.append(", apPrincipalid=").append(apPrincipalid);
        sb.append(", apPrincipal=").append(apPrincipal);
        sb.append(", apPrincipalDate=").append(apPrincipalDate);
        sb.append(", chargePrincipalid=").append(chargePrincipalid);
        sb.append(", chargePrincipal=").append(chargePrincipal);
        sb.append(", chargePrincipalDate=").append(chargePrincipalDate);
        sb.append(", executorid=").append(executorid);
        sb.append(", executor=").append(executor);
        sb.append(", poweroffonEndtime=").append(poweroffonEndtime);
        sb.append(", noticeProposerid=").append(noticeProposerid);
        sb.append(", noticeProposer=").append(noticeProposer);
        sb.append(", noticeProposerDate=").append(noticeProposerDate);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}